package ${pkName}.mapper;
import ${pkName}.entity.${className?cap_first};
import java.util.Date;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;

public interface ${className}Mapper   {
  /**
     * 说明：根据主键字段进行查询，方法参数必须包含完整的主键属性，查询条件使用等号
     *
     * @param id 主键
     * @return ${className?cap_first}
     */
    ${className?cap_first} selectById(Serializable id);

    /**
     * 查询全部结果，
     *
     * @return all
     */
    List<${className?cap_first}> selectAll();

    /**
    * 保存一个实体，null的属性也会保存，不会使用数据库默认值
    *
    * @param  ${className}
    * @return
    */
    int insert(${className?cap_first} ${className} );

    /**
    * 说明：根据主键更新实体全部字段，null值会被更新
    *
    * @param  ${className}
    * @return
    */
    int updateById(${className?cap_first} ${className} );

    /**
    * 条件查询,符串类型模糊匹配
    *
    * @param condition
    * @return
    */

    List<${className?cap_first}> selectByCondition(Object condition);

    /**
    * 根据 id查询
    *
    * @param ids
    * @return
    */
    List<${className?cap_first}> selectByIds(@Param("array") Serializable[] ids);

    /**
    * 说明：根据主键字段进行删除，
    * 方法参数必须包含完整的主键属性
    *
    * @param id
    * @return
    */
    int deleteById(Serializable id);

    /**
    * 根据id删除
    *
    * @param ids
    * @return
    */
    int deleteByIds(@Param("array") Serializable[] ids);
}
